package com.azt.api.service;
import java.util.List;
import java.util.Map;

import com.azt.api.pojo.Area;


/** 
 * @ClassName: AreaService 
 * @Description: TODO
 * @author: zhoudongdong
 * @date: 2016年9月5日 上午10:22:34  
 */
public interface AreaService
{

    List<Area> findAllArea();

    /**
     * 根据父id 获取所有子节点
     * 
     * @author 张栋
     * @param i
     * @see [类、类#方法、类#成员]
     */
    List<Area> getAreaByParentId(Integer i);
    
    /**
     * 根据父code获取所有子节点
     * 
     * @param code
     * @return
     */
    List<Area> getAreaByParentCode(String code);
    
    /**
     * @author 张栋
     * @param id
     * @return
     * @see [类、类#方法、类#成员]
     */
    Area getAreaById(Integer id);
    
    /**
     * 删除父子节点
     * 
     * @author 张栋
     * @param id
     * @see [类、类#方法、类#成员]
     */
    void deleteAllById(Integer id);
    
    Area getAreaByCode(String code);
    
    void saveOrUpdate(Area old);
    
    void save(Area area);
    
    /**
     * 获取中国省份信息
     * 
     * @return
     * @author 张栋 2016年5月13日上午9:11:33
     */
//    public Map<String, String> getChinaProvinces();
    
    /**
     * @Description 根据形如"1,2,3,4,5"的ids进行查找出数据字典集合
     * @param ids
     * @return String 返回 name组合在一起的字符串，用逗号间隔
     */
    String findByIds(String ids);
    
    /**
     * @Description 根据形如"1,2,3,4,5"的codes进行查找出数据字典集合
     * @param codes
     * @return 返回 name组合在一起的字符串，用逗号间隔
     */
    String findByCodes(String codes);
    
    /**
     * 根据形如"1,2,3,4,5"的codes以及父节点进行查找出数据字典集合
     * 
     * @param codes
     * @param pid
     * @return
     */
    String finfByCodesAndPid(String codes, String pid);
    
    /**
     * 校验是否有相同code的数据字典
     * 
     * @param area
     * @return
     */
    boolean findOtherArea(Area area);
    
    
    /** 
     * 查询中国省份集合
     * @Title: findChinaArea 
     * @Description: TODO
     * @return
     * @return: List<Area>
     * @author: zhoudongdong 2016年9月5日 上午10:22:37 
     */
    List<Area> findChinaAreas();
    
    Area getAreaBycode(String code);
}
